package com.hwua.tqm;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.management.RuntimeErrorException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FatherFrame extends JFrame {
	JPanel panelContent = new JPanel(); // 创建一个JPanel的实例
	JButton[] btns = null; // 左侧菜单按钮
	Object[] objs = null; // 左侧菜单按钮
	int index = 0;
	JButton exitBtn = new JButton("退出程序");// 退出按钮

	public FatherFrame(String[] btnNames, Object[] objs) {
		// Theme.useTheme();// 使用主题进行美化 在主函数中调用

		this.objs = objs;
		btns = new JButton[btnNames.length];
		//判断按钮个数必须和对象个数是否相等
		if (btns.length != objs.length) {
			throw new RuntimeException("按钮个数必须和对象个数相等");
		}
		for (int i = 0; i < btnNames.length; i++) {
			btns[i] = new JButton(btnNames[i]);
		}
		setTitle("java后台数据管理系统");
		this.setBounds(300, 200, 1000, 600); // 设置窗体大小
		this.setLocationRelativeTo(null); // 设置窗口居中
		Container contentPane = this.getContentPane();
		contentPane.setBackground(Color.CYAN); // 将JFrame实例背景设置为蓝绿色
		JPanel panelBtn = new JPanel(); // 创建一个JPanel的实例
		panelBtn.setBorder(BorderFactory.createLineBorder(Color.CYAN, 1));// 设置面板边框颜色

		panelBtn.setPreferredSize(new Dimension(100, 0));
		for (int i = 0; i < btns.length; i++) {
			panelBtn.add(btns[i]); // 将JButton实例添加到JPanel中
		}

		panelBtn.add(exitBtn); // 将JButton实例添加到JPanel中 添加退出按钮

		contentPane.add(panelBtn, BorderLayout.WEST); // 将JPanel实例添加到JFrame的西侧

		contentPane.add(panelContent, BorderLayout.CENTER); // 将JPanel实例添加到JFrame的中间

		// 事件处理
		MyEvent();

		// 自动化页面大小--全屏
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		int screenWidth = screenSize.width;
		int screenHeight = screenSize.height;

		this.setVisible(true);// 显示窗体

	}

	// 事件处理
	public void MyEvent() {
		// 退出事件绑定
		exitBtn.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0); // 关闭窗口
			}

		});
		for (int i = 0; i < btns.length; i++) {
			switch (i) {
			case 0:
				// 给按钮绑定事件
				btns[0].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg0) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[0]);
						panelContent.revalidate();
					}

				});
				break;
			case 1:
				// 给按钮绑定事件
				btns[1].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[1]);
						panelContent.revalidate();
					}

				});
				break;
			case 2:
				// 给按钮绑定事件
				btns[2].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[2]);
						panelContent.revalidate();
					}

				});
				break;
			case 3:
				// 给按钮绑定事件
				btns[3].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[3]);
						panelContent.revalidate();
					}

				});
				break;
			case 4:
				// 给按钮绑定事件
				btns[4].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[4]);
						panelContent.revalidate();
					}

				});
				break;
			case 5:
				// 给按钮绑定事件
				btns[5].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[5]);
						panelContent.revalidate();
					}

				});
				break;
			case 6:
				// 给按钮绑定事件
				btns[6].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[6]);
						panelContent.revalidate();
					}

				});
				break;
			case 7:
				// 给按钮绑定事件
				btns[7].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[7]);
						panelContent.revalidate();
					}

				});
				break;
			case 8:
				// 给按钮绑定事件
				btns[8].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[8]);
						panelContent.revalidate();
					}

				});
				break;
			case 9:
				// 给按钮绑定事件
				btns[9].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[9]);
						panelContent.revalidate();
					}

				});
				break;
			case 10:
				// 给按钮绑定事件
				btns[10].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[10]);
						panelContent.revalidate();
					}

				});
				break;
			case 11:
				// 给按钮绑定事件
				btns[11].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[11]);
						panelContent.revalidate();
					}

				});
				break;
			case 12:
				// 给按钮绑定事件
				btns[12].addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent arg) {
						panelContent.removeAll();
						panelContent.add((FatherTable) objs[12]);
						panelContent.revalidate();
					}

				});
				break;

			default:
				break;
			}

		}

	}

}